import java.util.*;

public class day1 {
    /**
     * 贪心
     * 重排字符串
     * https://ac.nowcoder.com/acm/problem/222104
     */
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        char[] str = in.next().toCharArray();
        int maxCount = 0;
        char maxStr = '0';
        int[] hash = new int[26];
        for(int i = 0;i < n;i++) {
            hash[str[i] - 'a']++;
            if(hash[str[i] - 'a'] > maxCount) {
                maxCount = hash[str[i] - 'a'];
                maxStr = str[i];
            }
        }
        if(maxCount > (n + 1) / 2) {
            System.out.print("no");
        }else {
            System.out.println("yes");
            char[] ret = new char[n];
            // 先处理最多的
            int index = 0;
            while(maxCount-- != 0) {
                ret[index] = maxStr;
                index += 2;
            }
            // 删除hash中的最大值的字符
            hash[maxStr - 'a'] = 0;
            // 处理剩余的那些字符，顺序无所谓
            for(int i = 0;i < 26;i++) {
                while(hash[i]-- != 0) {
                    char ch = (char) (i + 'a');
                    // 先判断下标是否是超过n的长度了
                    if(index >= n) {
                        index = 1;
                    }
                    ret[index] = ch;
                    index += 2;
                }
            }
            for(int i = 0;i < n;i++) {
                System.out.print(ret[i]);
            }
        }
    }


    /**
     * 同向双指针 - 滑动窗口
     * NC41 最长无重复子数组
     * https://www.nowcoder.com/practice/b56799ebfd684fb394bd315e89324fb4?tpId=196&tqId=37149&ru=/exam/oj
     */
    public int maxLength (int[] arr) {
        // write code here
        int[] hash = new int[100001];
        int n = arr.length;
        int ret = 0;
        int left = 0,right = 0;
        while(right < n) {
            // 进窗口
            hash[arr[right]]++;
            // 判断
            while(hash[arr[right]] > 1) {
                hash[arr[left]]--;
                left++;
            }
            // 更新结果
            ret = Math.max(ret,right - left + 1);
            right++;
        }
        return ret;
    }


    /**
     * 模拟
     * 牛牛冲钻五
     * https://ac.nowcoder.com/acm/problem/227309
     */
    public static void main1(String[] args) {
        Scanner in = new Scanner(System.in);
        int t = in.nextInt();
        while(t-- != 0) {
            int n = in.nextInt();
            int k = in.nextInt();
            char[] s = in.next().toCharArray();
            int ret = 0, Wcount = 0;
            for(char ch : s) {
                if(ch == 'W') {
                    if(Wcount >= 2) {
                        ret += k;
                    }else {
                        Wcount++;
                        ret++;
                    }
                }else if (ch == 'L') {
                    Wcount = 0;
                    ret--;
                }
            }
            System.out.println(ret);
        }
    }
}
